package com.example.blog.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.blog.entity.SysUser;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.blog.entity.dto.user.LoginDTO;
import com.example.blog.entity.dto.user.NewMsgCount;
import com.example.blog.entity.dto.user.PageQueryDTO;
import com.example.blog.entity.dto.user.UpdateInfoDTO;
import com.example.blog.entity.vo.user.LoginUserVO;
import com.example.blog.entity.vo.user.PageQueryVO;
import com.example.blog.entity.vo.user.UserInfoVO;

import java.io.Serializable;

/**
 * <p>
 * 系统用户表 服务类
 * </p>
 *
 * @author wlh
 * @since 2024-01-10
 */
public interface SysUserService extends IService<SysUser> {

    LoginUserVO login(LoginDTO loginDTO);

    void logout();

    Page<PageQueryVO> adminPage(PageQueryDTO pageQueryDTO);

    SysUser getByUsername(String username);

    void updateInfo(UpdateInfoDTO updateInfoDTO);

    SysUser getByIdNotNull(Serializable id);

    Page<UserInfoVO> search(String value, Integer current, Integer size);

    NewMsgCount newMsgCount();

    void register(LoginDTO loginDTO);

    UserInfoVO getUserInfo(Long id);

    Boolean isFollow(Long userId);
}
